<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"
	trimDirectiveWhitespaces="true"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

<%-- <sql:query var="rs" dataSource="jdbc/oracle11xe">
	select bdno,bdtitle,userid,regdate,reades from board
	order by bdno desc
</sql:query> --%>

<%--현재 페이지 처리 --%>
<c:set var="cpage" value="1" />
<c:if test="${not empty param.cpage}">


<c:set var="cpage" value="${param.cpage}" />
</c:if>

<%--페이지 단위로 게시판 리스트 가져오기 --%>
<%--오라클의 rank분석함수를 이용함--%>
<%--오라클의 rownum을 이용하면 성능이 좋아짐(어려움)--%>
<sql:query var="rs" dataSource="jdbc/oracle11xe">
select * from(
select bdno,bdtitle,userid,regdate,reades,
ceil(rank() over(order by bdno desc)/15) page
from BOARD)where page=?
<sql:param value="${cpage}" />
	<%--list.jsp?cpage=1 --%>
	<%--list.jsp?cpage=2 --%>
	<%--list.jsp?cpage=3 --%>
</sql:query>

<%--총페이지 수를 계산하는 SQL질의--%>
<sql:query dataSource="jdbc/oracle11xe" var="rs2">
	select ceil (count(bdno)/15)as pages from board
</sql:query>
<c:forEach var="r2" items="${rs2.rows}">
	<c:set var="pages" value="${r2.pages}"/>
</c:forEach>

<%--로그인 여부에 따라 "새글쓰기" 버튼이나 "로그인 하세요"라는 안내문구를 출력하는 코드 작성 --%>
<c:if test="${ not empty sessionScope.login}">
	<c:set var="loginResult"><button type="button" id="newBtn">새글쓰기</button></c:set>
</c:if>

<c:if test="${empty sessionScope.login }">
	<c:set var="loginResult">
		<em class="danger">로그인하세요!!!</em>
	</c:set>
</c:if>
<%--게시판 출력 시작 --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>::JSP 프로젝트 v1::</title>
<link href="css/normalize.css" rel="stylesheet">
<link href="css/dasom.css" rel="stylesheet">
<style type="text/css">
table {
	width: 75%;
	margin: 0 auto;
	table-layout: fixed;
	/*내용에 따라 테이블 너비가 변하는 것을 방지
		단점:각 열의 너비가 균등너비로 고정
		해결:colgroup태그로 각 열 너비 재설정*/
	border-collapse: collapse;
	/*테이블 테두리를 하나로 합쳐서 출력*/
	margin-bottom: 45px;
}

th, td {
	border: 1px solid black;
	padding: 10px;
	text-align: center;
}

.bdtitle {
	white-space: nowrap; /*자동 줄바꿈 금지-한줄로 출력*/
	overflow: hidden; /*영역밖 넘친 문자를 숨김으로 처리*/
	text-overflow: ellipsis; /*넘침문자를 줄임표시...로 처리*/
}

.pgnav {
	width: 550px;
	height: 35px;
	margin: 25px auto;
}

.pgnav li {
	display:inline;
	padding-right: 20px;
}

.cpage {
	color: red;
	font-weight: bold;
	font-size: 150%;
}
#search{width:75%;margin:10px auto;}
#search span{width:49%;display:inline-block;}
#search span:last-child{text-align:right; margin-left:6px;}
</style>
</head>
<body>
	<!-- 상단영역header 시작 -->
	<%@include file="layout/header.jsp"%>
	<%--정적포함: jsp를 서블릿으로 컴파일하기 전에 먼저inclue될 파일의 소스를 현재 문서에 삽입 그런다음 
	서블릿으로 변환하고 실행 후 결과 출력 --%>
	<!-- 상단영역header 끝-->
	<div id="contents">
		<h2>게시판</h2>
		<div id="search">
			<span>
				<select><option>제목</option>
				<option>작성자</option>
				<option>본문</option></select><%--검색종류 --%>
				<input type="text" name="key"/>
				<button type="button">검색</button>
			</span>
			
			<span>
			<%-- <button type="button" id="newBtn">새글쓰기</button> --%>
			${loginResult }
			</span>
		</div><%--검색폼,쓰기버튼 --%>

		<table>
			<colgroup>
				<col style="width: 10%" />
				<col style="" />
				<col style="width: 15%" />
				<col style="width: 15%" />
				<col style="width: 10%" />
			</colgroup>
			<!-- 테이블 열 수와 너비 설정 -->

			<tr>
				<th>번호</th>
				<th>제목</th>
				<th>작성자</th>
				<th>작성일</th>
				<th>조회</th>
			</tr>
			<!-- 제목행 출력 -->
			<c:forEach var="r" items="${rs.rows}">
				<tr>
					<td>${r.bdno}</td>
					<td class="bdtitle"><a href="view.jsp?bdno=${r.bdno}"> ${r.bdtitle}</a></td>
					<td>${r.userid}</td>
					<td>${fn:substring(r.regdate,0,10)}</td>
					<td>${r.reades}</td>
				</tr>
				<!-- 본문행 출력 -->
			</c:forEach>



		</table>
		<ul class="pgnav">
				<li><a href="list.jsp?cpage=1">맨처음</a></li>
			<c:if test="${cpage gt 1}">
				<li><a href="list.jsp?cpage=${cpage-1}">이전</a></li>
			</c:if>
			<c:forEach var="i" begin="1" end="${pages}">
				<c:if test="${i eq cpage}">
					<li class="cpage">${i}</li>
				</c:if><%--현재페이지가 i와 같다면 링크제거후 출력--%>
				
				<c:if test="${i ne cpage}">
					<li><a href="list.jsp?cpage=${i}">${i}</a></li>
				</c:if>
			</c:forEach>
			<c:if test="${cpage lt pages}">
			<li><a href="list.jsp?cpage=${cpage+1}">다음</a></li>
			</c:if>
			<li><a href="list.jsp?cpage=${pages}">맨끝</a></li>
		</ul>
	</div>
	<!-- 하단영역footer시작 -->
	<%@include file="layout/footer.jsp"%>
	<!-- 하단영역footer 끝 -->
	<script src="js/jquery-1.11.1.min.js"></script>
	<script src="js/dasom.js"></script>
</body>
</html>
